package com.example.carefree_server.controller.c_managerController;

import com.example.carefree_server.entity.Result;
import com.example.carefree_server.entity.Student;
import com.example.carefree_server.service.s_managerService.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.swing.text.Style;
import java.util.List;

@RestController
@RequestMapping("/students")
public class StudentController {
    @Autowired
    private StudentService studentService;

    // 获取所有学生信息
    @GetMapping("/getAll")
    public List<Student> getAllStudents() {
        return studentService.getAllStudents();
    }

    // 添加学生信息
    @PostMapping("/addStudent")
    public Result addStudent(@RequestBody Student student) {
        String sid=student.getSid();
    //        学生不存在（返回值为空）系统才可以添加，每个学生有唯一的标识id
        if (studentService.findStudentById(sid)==null){
            studentService.addStudent(student);
            return  Result.addSuccess();
        }else{
            return Result.error("该生已经存在！无法录入");
        }

    }

    // 查找详情信息
    @GetMapping("/findById")
    public Result findStudentById(String sid) {
        Student student=studentService.findStudentById(sid);
    //        学生信息为空，既是不存在系统中
        if (student==null){
            return  Result.error("该生不在系统内！");
        }else{
            return Result.success(student);
        }
    }

    // 更新学生信息
    @PutMapping("/updateStudent")
    public Result updateStudent(@RequestBody Student student) {
        String sid=student.getSid();
        //        只有学生存在（返回值不为空）的时候 才能更新其信息
        if(studentService.findStudentById(sid)!=null){
            studentService.updateStudent(student);
            return  Result.UpdateSuccess();
        }else{
            return Result.error("操作失败，该生不存在！");
        }


    }

    // 删除学生信息
    @DeleteMapping("/{sid}")
    public Result deleteStudent(@PathVariable String sid) {
    //        只有学生存在系统（返回值不为空）中 才能操作删除
        if (studentService.findStudentById(sid)!=null){
            studentService.deleteStudentById(sid);
            return  Result.deleteSuccess();
        }else {
            return Result.error("操作失败，该生并不存在！");
        }


    }

}
